#ifndef LOGGER_H
#define LOGGER_H

#include <QString>
#include <QFile>
#include <QTextStream>

class FLR_LOG
{
public:
    FLR_LOG() { }

    bool InitLog(const QString file);
    bool ExitLog();

    bool WriteToLogDirect(const QString Format);
    bool WriteToLog(const QString Format);

    void ok(const QString x)            { WriteToLog("<b><font color=\"#008000\">OK:</font></b>" + x); }
    void info(const QString x)          { WriteToLog("<b><font color=\"#008000\">INFO:</font></b> " + x); }
    void warning(const QString x)       { WriteToLog("<b><font color=\"#FF0000\">WARNUNG:</font></b>" + x); }
    void error(const QString x)         { WriteToLog("<b><font color=\"#FF0000\">FEHLER:</font></b>" + x); }

    void nullpointer(const QString x)   { WriteToLog("<b><font color=\"#FF0000\">FEHLER:</font></b> <i>" + x + "</i> ist NULL!"); }
    void invalidvalue(const QString x)  { WriteToLog("<b><font color=\"#FF0000\">FEHLER:</font></b> <i>" + x + "</i> hat einen ungültigen Wert!"); }
    void outofmem()                     { WriteToLog("<b><font color=\"#FF0000\">FEHLER:</font></b> Nicht genug Speicher!"); }

    void file(const QString f)          { WriteToLog("<tr><td><font size=\"2\"><b><font color=\"#FF0000\">FEHLER:</font></b> Die Datei <i>" + f + "</i> konnte nicht geöffnet, gelesen, erstellt oder beschrieben werden!</font></td>"); }
private:
    QFile       flr_file;
    QTextStream flr_stream;
};

extern FLR_LOG qLog;


#endif // LOGGER_H
